home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 2.3 KB | 81 lines | [TEXT/MPS ] |
- /*
- File: Synchronization.idl
-
- Contains: Synchronization Interfaces
-
- Version: Technology: System 8
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __SYNCHRONIZATION_IDL__
- #define __SYNCHRONIZATION_IDL__
-
- #include <somobj.idl>
- #include <somcls.idl>
-
- #ifndef __TYPES_IDL__
- #include <Types.idl>
- #endif
- #ifndef __KERNEL_IDL__
- #include <Kernel.idl>
- #endif
-
- #ifdef __SOMIDL__
-
- #if FOR_SYSTEM8_PREEMPTIVE
- /* Note: Lock, ReadWriteLock, and CountingSemaphore data structures must be LONG WORD ALIGNED in memory!*/
- typedef SOMLargeStruct Lock; /* Derived from a struct of 8 bytes in size */
-
- typedef OpaquePtr LockPtr; /* Substituted OpaquePtr for “Lock*” */
-
- typedef SOMLargeStruct ReadWriteLock; /* Derived from a struct of 20 bytes in size */
-
- typedef OpaquePtr ReadWriteLockPtr; /* Substituted OpaquePtr for “ReadWriteLock*” */
-
- typedef SOMLargeStruct CountingSemaphore; /* Derived from a struct of 24 bytes in size */
-
- typedef OpaquePtr CountingSemaphorePtr; /* Substituted OpaquePtr for “CountingSemaphore*” */
-
- typedef OptionBits LockOptions;
-
- typedef OpaquePtr InterruptState; /* Substituted OpaquePtr for “void*” */
-
- /*
- Simple lock routines
- Locks may be created with the kLockDisablesSwis and/or kLockDisablesCompletionRoutines options,
- but no others.
- */
- /*
- Reader/writer lock routines
- ReadWriteLocks may be created with the kLockDisablesSwis, kLockDisablesCompletionRoutines,
- and/or kLockAdjustsPriorities options.
- */
- /*
- Counting semaphore routines
- CountingSemaphores currently have no options.
- */
- /*
- Interrupt enabling and disabling. ** MAY ONLY BE CALLED FROM PRIVILEGED CODE!!! **
- Use very sparingly.
- */
- /*
- Atomic operations on 8-, 16-, and 32-bit entities.
- ** OPERATIONS THAT CROSS WORD (32-BIT) BOUNDARIES WILL FAIL!!! **
- */
- /* Note: TestAndSet uses PPC bit ordering, zero is the high bit, and theBit ranges from 0 - FFFFFFFF.*/
- /* Atomic primitives for singly linked list manipulation.*/
- #endif
-
- #endif /* __SOMIDL__ */
-
- #endif /* __SYNCHRONIZATION_IDL__ */
-
-